“Cloud computing” can be defined as Internet-based computing in which shared resources, software and information are provided to client or user computers or other devices on-demand from a pool of resources that are communicatively available via the Internet, or other electronic network. Cloud computing is envisioned as a way to democratize access to resources and services, letting users efficiently consume as many resources as they need and/or can afford.
In some implementations, cloud computing comprises linking backend resources (e.g., memory, processing power, bandwidth, etc.), i.e., devices and functionality that provide those resources, to provide web-based services, applications, and data storage, among other services. This approach has the potential effect of providing services at lower cost than current options, and with less complexity, greater scalability, and wider reach. However, linking the appropriate mix of backend systems to each other and to client or user devices can be daunting, especially in view of the fact that there may be many thousands of such backend systems or devices, each having different capabilities and attributes.